#include <stdio.h>
#include <stdlib.h>
int _Nnor(int n)
{
    int ret = 1;
    for(int i =1;i<= n;i++)
    {
        ret *= i;
    }
    return ret;
}
int _N(int n)
{
    if(n < 0)
    {
        //表示错误
        return 0;
    }
    return n == 1 || n == 1 ? 1 : n*_N(n-1);
}

void test()
{
    int n ;
    scanf("%d",&n);
    int ret = _N(n);
    printf("%d\n",ret);
    int ret1 = _Nnor(n);
    printf("%d\n",ret1);
}
int fib(int n)
{
    if(n <= 2) 
        return 1;
    if(n >2)
    {
        int a[n];
        a[1] = 1;
        a[2] = 1;
        for(int i=3;i <= n;i++)
        {
            a[i] = a[i-1] + a[i-2]; 
        }
        return a[n];
    }
}
int fib1(int n)
{
    if(n <= 0)
        return 0;
    return n == 1 || n == 2 ? 1 : fib1(n-1)+fib(n-2);
}
void test1()
{
    int n;
    scanf("%d",&n);
    int ret = fib(n);
    printf("%d\n",ret);
    int ret1 = fib1(n);
    printf("%d\n",ret1);
}
int main()
{
    // test();
    test1();
    return 0;
}